home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 34 / Mac Magazin and MacEasy Magazine CD - Issue 34.iso / Grafik & Text / Alpha ƒ / Tcl / Menus / internetConfigMenu.tcl < prev    next >
Text File  |  1996-11-20  |  4KB  |  167 lines

  1. # nowrap
  2.  
  3. if $startingUp {
  4.     set icMenu            "•139"
  5.     addMenu icMenu
  6.     return
  7. }
  8.  
  9.  
  10. set icMenu "•139"
  11.  
  12. proc icMenu {} {}
  13.  
  14.  
  15. menu -n $icMenu -p internetProc {
  16.     "menu -n urls {}"
  17.     "/'<I<OpickUrl"
  18.     (-
  19.     goTo
  20.     help
  21.     (-
  22.     webBrowser
  23.     newsClient
  24.     mailClient
  25.     finger
  26.     "/ptelnet"
  27.     (-
  28.     ftpClient
  29.     gopherClient
  30.     telnetClient
  31.     (-
  32.     resolveUrl
  33.     viewHtmlFile
  34. }
  35.  
  36.  
  37. proc internetProc {menu item} {
  38.     global HOME
  39.     
  40.     if {[catch {switch $item {
  41.         pickUrl icPickUrl
  42.         goTo icOpen
  43.         help {edit -r "$HOME:Help:Internet Config"}
  44.         webBrowser {launch -f [icGetPref -t 1 {helper•http}]}
  45.         mailClient {launch -f [icGetPref -t 1 {helper•mailto}]}
  46.         ftpClient {launch -f [icGetPref -t 1 {helper•ftp}]}
  47.         gopherClient {launch -f [icGetPref -t 1 {helper•gopher}]}
  48.         telnetClient {launch -f [icGetPref -t 1 {helper•telnet}]}
  49.         newsClient {launch -f [icGetPref -t 1 {helper•news}]}
  50.         resolveUrl {icURL [getSelect]}
  51.         viewHtmlFile htmlSendWindow
  52.         telnet {catch telnet}
  53.         finger {catch finger}
  54.     }}]} {
  55.         alertnote "Despite what Internet Config says, you should reboot after using IC for the first time."
  56.         launch -f "$HOME:Tools:Internet Config"
  57.     }
  58. }
  59.  
  60.  
  61. proc icPickUrl {} {
  62.     global savedUrls
  63.     if {![catch {listpick -p "Pick URL:" [lsort [array names savedUrls]]} res]} {
  64.         icURL $savedUrls($res)
  65.     }
  66. }
  67.  
  68.  
  69. proc rebuildUrlMenu {} {
  70.     global urlMenu savedUrls
  71.     menu -m -n urls -p urlProc {
  72.         "Add"
  73.         "View"
  74.         "Remove"
  75.         "(-"
  76.     }
  77.  
  78.     foreach url [lsort -ignore [array names savedUrls]] {
  79.         addMenuItem -m -l "  " urls $url
  80.     }
  81. }
  82.  
  83. rebuildUrlMenu
  84.  
  85. # http://www.cs.umd.edu/~keleher/localHome.html
  86. proc urlProc {menu item} {
  87.     global savedUrls modifiedArrVars
  88.     
  89.     if {$item == "Add"} {
  90.         if {[catch getSelect def]} {set def {}}
  91.         set res [dialog -h 105 -w 370 -b OK 10 80 70 100 -b Cancel 100 80 160 100 -t {Name:} 10 10 60 30 -t {URL:} 10 40 60 60 -e "" 60 10 360 30 -e $def 60 40 360 60 ] 
  92.         if {[lindex $res 0]} {
  93.             set nm [lindex $res 2]
  94.             set t [lindex $res 3]
  95.             if {![string length $t] || ![string length $nm]} {
  96.                 beep
  97.                 return
  98.             }
  99.             set savedUrls($nm) $t
  100.             lappend modifiedArrVars savedUrls
  101.             rebuildUrlMenu
  102.         }
  103.     } elseif {$item == "Remove"} {
  104.         set r [listpick -p "Remove which URL?" [lsort [array names savedUrls]]]
  105.         unset savedUrls($r)
  106.         removeArrDef savedUrls $r
  107.         rebuildUrlMenu
  108.     } elseif {$item == "View"} {
  109.         if {[info exists savedUrls]} {
  110.             set lines {}
  111.             foreach nm [array names savedUrls] {
  112.                 append lines [format "%-20s \"%s\"\r" $nm [set savedUrls($nm)]]
  113.             }
  114.             new -n {* Saved URLs *}
  115.             insertText $lines
  116.             shrinkWindow
  117.             setWinInfo dirty 0
  118.             setWinInfo read-only 1
  119.         }
  120.     } else {
  121.         icURL [set savedUrls($item)]
  122.     }
  123. }
  124.  
  125. if {![info exists lastFinger]} {set lastFinger ""}
  126. if {![info exists lastTelnet]} {set lastTelnet ""}
  127.  
  128. proc finger {} {
  129.     global lastFinger modifiedVars
  130.     if {[catch {launchBackAppl {'PnLF'}}]} {
  131.         alertnote "You must install Peter Lewis's \"Finger\" program."
  132.         return
  133.     }
  134.     set lastFinger [prompt {Who?} $lastFinger]
  135.     lappend modifiedVars lastFinger
  136.     watchCursor
  137.     set text [AEBuild -r Finger GURL FURL ---- "“$lastFinger”"]
  138.     new -n "* $lastFinger *"
  139.     if {[regexp {“(.*)”} $text dummy text]} {
  140.         insertText $text
  141.         shrinkWindow
  142.         setWinInfo dirty 0
  143.         setWinInfo read-only 1
  144.         goto 0
  145.     }
  146. }
  147.  
  148.  
  149. proc telnet {} {
  150.     global lastTelnet modifiedVars
  151.     if {[catch {launchBackAppl {'NCSA'}}]} {
  152.         alertnote "You must install Telnet."
  153.         return
  154.     }
  155.     if {[string length $lastTelnet]} {
  156.         set choice [eval prompt {Where?} [car $lastTelnet] Old $lastTelnet ]
  157.         set lastTelnet [removeDups [concat $choice $lastTelnet]]
  158.     } else {
  159.         set choice [set lastTelnet [prompt {Where?} $lastTelnet]]
  160.     }
  161.     
  162.     lappend modifiedVars lastTelnet
  163.     watchCursor
  164.     AEBuild -r Telnet GURL GURL ---- "“telnet://$choice”"
  165.     switchTo 'NCSA'
  166. }
  167.